package com.haixiaoke.saas.repository.mapper;

import com.haixiaoke.saas.repository.pojo.ElectronicSigningContract;

import java.util.List;


/**
 * 电子签合同信息Mapper接口
 *
 * @author qixi
 * @date 2023-12-26
 */
public interface ElectronicSigningContractMapper {
    /**
     * 查询电子签合同信息
     *
     * @param contractId 电子签合同信息主键
     * @return 电子签合同信息
     */
    ElectronicSigningContract selectElectronicSigningContractByContractId(Long contractId);

    /**
     * 查询电子签合同信息列表
     *
     * @param electronicSigningContract 电子签合同信息
     * @return 电子签合同信息集合
     */
    List<ElectronicSigningContract> selectElectronicSigningContractList(ElectronicSigningContract electronicSigningContract);

    /**
     * 新增电子签合同信息
     *
     * @param electronicSigningContract 电子签合同信息
     * @return 结果
     */
    int insertElectronicSigningContract(ElectronicSigningContract electronicSigningContract);

    /**
     * 修改电子签合同信息
     *
     * @param electronicSigningContract 电子签合同信息
     * @return 结果
     */
    int updateElectronicSigningContract(ElectronicSigningContract electronicSigningContract);

    /**
     * 删除电子签合同信息
     *
     * @param contractId 电子签合同信息主键
     * @return 结果
     */
    int deleteElectronicSigningContractByContractId(Long contractId);

    /**
     * 批量删除电子签合同信息
     *
     * @param contractIds 需要删除的数据主键集合
     * @return 结果
     */
    int deleteElectronicSigningContractByContractIds(Long[] contractIds);

    List<ElectronicSigningContract> selectElectronicSigningContractOrHouseInfoList(ElectronicSigningContract electronicSigningContract);

    ElectronicSigningContract selectElectronicSigningContractByFlowId(String flowId);

    List<ElectronicSigningContract> selectElectronicSigningContractOrHouseInfoContractList(ElectronicSigningContract electronicSigningContract);


    List<ElectronicSigningContract> selectElectronicSigningContractOrHouseInfoListByUser(ElectronicSigningContract electronicSigningContract);

    int checkContractExist(ElectronicSigningContract electronicSigningContract);

    List<ElectronicSigningContract> selectElectronicSigningContractByContractIds(List<Long> contractIds);
}
